bitkeeper revision 1.1004 (40d9962b6c-Z9R9FquPba7TS8wG_1w)
authorkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Wed, 23 Jun 2004 14:39:39 +0000 (14:39 +0000)
committerkaf24@scramble.cl.cam.ac.uk <kaf24@scramble.cl.cam.ac.uk>
Wed, 23 Jun 2004 14:39:39 +0000 (14:39 +0000)
Cleanups.

extras/mini-os/h/hypervisor.h
extras/mini-os/kernel.c
extras/mini-os/lib/printf.c
linux-2.4.26-xen-sparse/arch/xen/drivers/blkif/backend/common.h
linux-2.4.26-xen-sparse/arch/xen/drivers/netif/backend/common.h
linux-2.4.26-xen-sparse/arch/xen/drivers/netif/backend/interface.c
xen/arch/x86/entry.S
xen/drivers/char/console.c
xen/include/hypervisor-ifs/hypervisor-if.h
xen/include/xen/sched.h

index e44c6b35731c7565083132ffd84c47e28cf014e2..6009671a4d86dd6ae4904ab364d7e82c237e8108 100644 (file)
@@ -61,18 +61,6 @@ static __inline__ int HYPERVISOR_mmu_update(mmu_update_t *req,
     return ret;
 }
 
-static __inline__ int HYPERVISOR_console_write(const char *str, int count)
-{
-    int ret;
-    __asm__ __volatile__ (
-        TRAP_INSTR
-        : "=a" (ret) : "0" (__HYPERVISOR_console_write), 
-        "b" (str), "c" (count) : "memory" );
-
-
-    return ret;
-}
-
 static __inline__ int HYPERVISOR_set_gdt(unsigned long *frame_list, int entries)
 {
     int ret;
@@ -142,7 +130,7 @@ static __inline__ int HYPERVISOR_block(void)
     return ret;
 }
 
-static inline int HYPERVISOR_shutdown(void)
+static __inline__ int HYPERVISOR_shutdown(void)
 {
     int ret;
     __asm__ __volatile__ (
@@ -154,7 +142,7 @@ static inline int HYPERVISOR_shutdown(void)
     return ret;
 }
 
-static inline int HYPERVISOR_reboot(void)
+static __inline__ int HYPERVISOR_reboot(void)
 {
     int ret;
     __asm__ __volatile__ (
@@ -166,7 +154,7 @@ static inline int HYPERVISOR_reboot(void)
     return ret;
 }
 
-static inline int HYPERVISOR_suspend(unsigned long srec)
+static __inline__ int HYPERVISOR_suspend(unsigned long srec)
 {
     int ret;
     /* NB. On suspend, control software expects a suspend record in %esi. */
@@ -280,4 +268,26 @@ static __inline__ int HYPERVISOR_update_va_mapping(
     return ret;
 }
 
+static __inline__ int HYPERVISOR_xen_version(int cmd)
+{
+    int ret;
+    __asm__ __volatile__ (
+        TRAP_INSTR
+        : "=a" (ret) : "0" (__HYPERVISOR_xen_version), 
+        "b" (cmd) : "memory" );
+
+    return ret;
+}
+
+static __inline__ int HYPERVISOR_console_io(int cmd, int count, char *str)
+{
+    int ret;
+    __asm__ __volatile__ (
+        TRAP_INSTR
+        : "=a" (ret) : "0" (__HYPERVISOR_console_io),
+        "b" (cmd), "c" (count), "d" (str) : "memory" );
+
+    return ret;
+}
+
 #endif /* __HYPERVISOR_H__ */
index f1d46fbf7d2c7250e33e8350b48d87f1d0971d2e..a9f423c1920b4fd3e16118dd6d8d8ee3aeea7aa6 100644 (file)
@@ -97,22 +97,15 @@ void start_kernel(start_info_t *si)
     
     /* print out some useful information  */
     printk("Xen Minimal OS!\n");
-    printk("start_info:   %p\n",  si);
+    printk("start_info:   %p\n",    si);
     printk("  nr_pages:   %lu",     si->nr_pages);
     printk("  shared_inf: %08lx\n", si->shared_info);
-    printk("  pt_base:    %p",    (void *)si->pt_base); 
+    printk("  pt_base:    %p",      (void *)si->pt_base); 
     printk("  mod_start:  0x%lx\n", si->mod_start);
-    printk("  mod_len:    %lu\n", si->mod_len); 
-#if 0 /* XXX Change to use NETOP_GET_VIF_INFO and BLOCK_IO_OP_RING_ADDRESS */
-    printk("  net_rings: ");
-    for (i = 0; i < MAX_DOMAIN_VIFS; i++) {
-        printk(" %lx", si->net_rings[i]);
-    }; printk("\n");
-    printk("  blk_ring:   0x%lx\n", si->blk_ring);
-    printk("  dom_id:     %ld\n",  si->dom_id);
-#endif
-    printk("  flags:      0x%lx\n", si->flags);
-    printk("  cmd_line:   %s\n",  si->cmd_line ? (const char *)si->cmd_line : "NULL");
+    printk("  mod_len:    %lu\n",   si->mod_len); 
+    printk("  flags:      0x%x\n",  (unsigned int)si->flags);
+    printk("  cmd_line:   %s\n",  
+           si->cmd_line ? (const char *)si->cmd_line : "NULL");
 
 
     /*
@@ -126,7 +119,12 @@ void start_kernel(start_info_t *si)
     /* set up events */
     init_events();
 
-    /* install some handlers */
+    /*
+     * These need to be replaced with event-channel/control-interface
+     * equivalents.
+     */
+#if 0
+    /* Install some handlers. */
     add_ev_action(EV_DIE, &exit_handler);
     enable_ev_action(EV_DIE);
     enable_hypervisor_event(EV_DIE);
@@ -134,6 +132,7 @@ void start_kernel(start_info_t *si)
     add_ev_action(EV_DEBUG, &debug_handler);
     enable_ev_action(EV_DEBUG);
     enable_hypervisor_event(EV_DEBUG);
+#endif
 
     /* init time and timers */
     init_time();
index 698a089c180b38aa19ab9ce8a01c2db0dc8de0af..f6232c40441860cd7f23e58bf04e6db924a524c5 100644 (file)
@@ -84,7 +84,8 @@ printf(const char *fmt, ...)
        retval = kvprintf(fmt, printk_buf, 10, ap);
     printk_buf[retval] = '\0';
        va_end(ap);
-    (void)HYPERVISOR_console_write(printk_buf, strlen(printk_buf));
+    (void)HYPERVISOR_console_io(CONSOLEIO_write, strlen(printk_buf), 
+                                printk_buf);
        return retval;
 }
 
@@ -95,7 +96,8 @@ vprintf(const char *fmt, va_list ap)
     static char printk_buf[1024];
        retval = kvprintf(fmt, printk_buf, 10, ap);
     printk_buf[retval] = '\0';
-    (void)HYPERVISOR_console_write(printk_buf, strlen(printk_buf));
+    (void)HYPERVISOR_console_io(CONSOLEIO_write, strlen(printk_buf),
+                                printk_buf);
        return retval;
 }
 
index 6e10732e0409a42f1f6714b86e6c24bfa097dbb4..daf09a76f91543ca326a95039221689accdb52b4 100644 (file)
@@ -15,7 +15,7 @@
 #include <asm/io.h>
 #include "../blkif.h"
 
-#ifndef NDEBUG
+#if 0
 #define ASSERT(_p) \
     if ( !(_p) ) { printk("Assertion '%s' failed, line %d, file %s", #_p , \
     __LINE__, __FILE__); *(int*)0=0; }
index 88881cdf66882af46726d61ab3ed49f6a2c63a72..f3eff0d81b2fb74270785ec74893edda1be778c7 100644 (file)
@@ -16,9 +16,8 @@
 #include <asm/ctrl_if.h>
 #include <asm/io.h>
 #include "../netif.h"
-#include "../../../../../net/bridge/br_private.h"
 
-#ifndef NDEBUG
+#if 0
 #define ASSERT(_p) \
     if ( !(_p) ) { printk("Assertion '%s' failed, line %d, file %s", #_p , \
     __LINE__, __FILE__); *(int*)0=0; }
index cc20e780cee2d811f8b585a50368e65d00bf9a06..2c4b74e1ea2532e73810af3d0d278c8fcefd6f4f 100644 (file)
 #define NETIF_HASH(_d,_h) (((int)(_d)^(int)(_h))&(NETIF_HASHSZ-1))
 
 static netif_t *netif_hash[NETIF_HASHSZ];
-#ifdef XEN_BRIDGE
-static struct net_device *bridge_dev;
-static struct net_bridge *bridge_br;
-#endif
 
 netif_t *netif_find_by_handle(domid_t domid, unsigned int handle)
 {
@@ -40,9 +36,6 @@ void __netif_disconnect_complete(netif_t *netif)
     unbind_evtchn_from_irq(netif->evtchn);
     vfree(netif->tx); /* Frees netif->rx as well. */
     rtnl_lock();
-#ifdef XEN_BRIDGE
-    (void)br_del_if(bridge_br, netif->dev);
-#endif
     (void)dev_close(netif->dev);
     rtnl_unlock();
 
@@ -125,12 +118,13 @@ void netif_create(netif_be_create_t *create)
     /* Disable queuing. */
     dev->tx_queue_len = 0;
 
-    /* XXX In bridge mode we should force a different MAC from remote end. */
+    /* Force a different MAC from remote end. */
     dev->dev_addr[2] ^= 1;
 
-    err = register_netdev(dev);
-    if (err) {
-        DPRINTK("Could not register new net device %s: err=%d\n", dev->name, err);
+    if ( (err = register_netdev(dev)) != 0 )
+    {
+        DPRINTK("Could not register new net device %s: err=%d\n",
+                dev->name, err);
         create->status = NETIF_BE_STATUS_OUT_OF_MEMORY;
         kfree(dev);
         return;
@@ -242,25 +236,7 @@ void netif_connect(netif_be_connect_t *connect)
     netif_get(netif);
 
     rtnl_lock();
-
     (void)dev_open(netif->dev);
-#ifdef XEN_BRIDGE
-    (void)br_add_if(bridge_br, netif->dev);
-
-    /*
-     * The default config is a very simple binding to eth0.
-     * If eth0 is being used as an IP interface by this OS then someone
-     * must add eth0's IP address to nbe-br, and change the routing table
-     * to refer to nbe-br instead of eth0.
-     */
-    (void)dev_open(bridge_dev);
-    if ( (eth0_dev = __dev_get_by_name("eth0")) != NULL )
-    {
-        (void)dev_open(eth0_dev);
-        (void)br_add_if(bridge_br, eth0_dev);
-    }
-#endif
-
     rtnl_unlock();
 
     (void)request_irq(netif->irq, netif_be_int, 0, netif->dev->name, netif);
@@ -301,25 +277,4 @@ int netif_disconnect(netif_be_disconnect_t *disconnect, u8 rsp_id)
 void netif_interface_init(void)
 {
     memset(netif_hash, 0, sizeof(netif_hash));
-#ifdef XEN_BRIDGE
-    if ( br_add_bridge("nbe-br") != 0 )
-        BUG();
-    bridge_dev = __dev_get_by_name("nbe-br");
-    bridge_br  = (struct net_bridge *)bridge_dev->priv;
-    bridge_br->bridge_hello_time = bridge_br->hello_time = 0;
-    bridge_br->bridge_forward_delay = bridge_br->forward_delay = 0;
-    bridge_br->stp_enabled = 0;
-#endif
 }
-
-#ifndef CONFIG_BRIDGE
-#error Must configure Ethernet bridging in Network Options
-#endif
-#ifndef XEN_BRIDGE
-EXPORT_SYMBOL(br_add_bridge);
-EXPORT_SYMBOL(br_del_bridge);
-EXPORT_SYMBOL(br_add_if);
-EXPORT_SYMBOL(br_del_if);
-EXPORT_SYMBOL(br_get_bridge_ifindices);
-EXPORT_SYMBOL(br_get_port_ifindices);
-#endif
index 155f93fd9fed8a4184b97531e25f8b458d6d289b..c1802401975b17ddbcf5cfb7a0706c8893b50b01 100644 (file)
@@ -697,30 +697,25 @@ nmi_io_err:
 ENTRY(hypervisor_call_table)
         .long SYMBOL_NAME(do_set_trap_table)     /*  0 */
         .long SYMBOL_NAME(do_mmu_update)
-        .long SYMBOL_NAME(do_console_write)
         .long SYMBOL_NAME(do_set_gdt)
         .long SYMBOL_NAME(do_stack_switch)
-        .long SYMBOL_NAME(do_set_callbacks)      /*  5 */
-        .long SYMBOL_NAME(do_ni_syscall)                    # do_net_io_op
-        .long SYMBOL_NAME(do_fpu_taskswitch)
+        .long SYMBOL_NAME(do_set_callbacks)
+        .long SYMBOL_NAME(do_fpu_taskswitch)     /*  5 */
         .long SYMBOL_NAME(do_sched_op)
         .long SYMBOL_NAME(do_dom0_op)
-        .long SYMBOL_NAME(do_ni_syscall)         /* 10 */   # do_network_op
-        .long SYMBOL_NAME(do_ni_syscall)                    # do_block_io_op
         .long SYMBOL_NAME(do_set_debugreg)
         .long SYMBOL_NAME(do_get_debugreg)
-        .long SYMBOL_NAME(do_update_descriptor)
-        .long SYMBOL_NAME(do_set_fast_trap)      /* 15 */
+        .long SYMBOL_NAME(do_update_descriptor)  /* 10 */
+        .long SYMBOL_NAME(do_set_fast_trap)
         .long SYMBOL_NAME(do_dom_mem_op)
         .long SYMBOL_NAME(do_multicall)
-        .long SYMBOL_NAME(do_ni_syscall)                    # do_kbd_op
         .long SYMBOL_NAME(do_update_va_mapping)
-        .long SYMBOL_NAME(do_set_timer_op)       /* 20 */
+        .long SYMBOL_NAME(do_set_timer_op)       /* 15 */
         .long SYMBOL_NAME(do_event_channel_op)
         .long SYMBOL_NAME(do_xen_version)
         .long SYMBOL_NAME(do_console_io)
         .long SYMBOL_NAME(do_physdev_op)
-        .long SYMBOL_NAME(do_update_va_mapping_otherdomain) /* 25 */
+        .long SYMBOL_NAME(do_update_va_mapping_otherdomain) /* 20 */
         .rept NR_syscalls-((.-hypervisor_call_table)/4)
         .long SYMBOL_NAME(do_ni_syscall)
         .endr
index f675d03049789ac0e152fbfdc82c085b73b2f91c..33b9a37a52c244cfdf90a8e90f12a7b6d650483d 100644 (file)
@@ -393,69 +393,6 @@ void set_printk_prefix(const char *prefix)
     strcpy(printk_prefix, prefix);
 }
 
-/*
- * This hypercall is deprecated. Only permit its use in debug environments.
- */
-long do_console_write(char *str, unsigned int count)
-{
-#ifndef NDEBUG
-#define SIZEOF_BUF 256
-    unsigned char safe_str[SIZEOF_BUF+1];
-    unsigned char single_line[SIZEOF_BUF+2];
-    unsigned char line_header[30];
-    unsigned char *p;
-    unsigned char  c;
-    unsigned long flags;
-    int            j;
-    
-    if ( count == 0 )
-        return 0;
-
-    if ( count > SIZEOF_BUF ) 
-        count = SIZEOF_BUF;
-    
-    if ( copy_from_user(safe_str, str, count) )
-        return -EFAULT;
-    safe_str[count] = '\0';
-    
-    sprintf(line_header, "DOM%u: ", current->domain);
-    
-    p = safe_str;
-    while ( *p != '\0' )
-    {
-        j = 0;
-
-        while ( (c = *p++) != '\0' )
-        {
-            if ( c == '\n' )
-                break;
-            if ( (c < 32) || (c > 126) )
-                continue;
-            single_line[j++] = c;
-        }
-
-        single_line[j++] = '\n';
-        single_line[j++] = '\0';
-
-        spin_lock_irqsave(&console_lock, flags);
-        __putstr(line_header);
-        __putstr(single_line);
-        spin_unlock_irqrestore(&console_lock, flags);
-    }
-
-    return 0;
-#else
-    if ( !test_and_set_bit(DF_CONWRITEBUG, &current->flags) )
-    {
-        printk("DOM%u is attempting to use the deprecated "
-               "HYPERVISOR_console_write() interface.\n", current->domain);
-        printk(" - For testing, create a debug build of Xen\n");
-        printk(" - For production, your OS must use the new console model\n");
-    }
-    return -ENOSYS;
-#endif
-}
-
 void init_console(void)
 {
     extern unsigned char opt_console[];
index a8a59eca5b784c579f3aa0fa0ac862e8bd81c9b8..ee507c7f3eac7a906e99292b16553948625ebf51 100644 (file)
 /* EAX = vector; EBX, ECX, EDX, ESI, EDI = args 1, 2, 3, 4, 5. */
 #define __HYPERVISOR_set_trap_table        0
 #define __HYPERVISOR_mmu_update            1
-#define __HYPERVISOR_console_write         2 /* DEPRECATED */
-#define __HYPERVISOR_set_gdt               3
-#define __HYPERVISOR_stack_switch          4
-#define __HYPERVISOR_set_callbacks         5
-#define __HYPERVISOR_fpu_taskswitch        7
-#define __HYPERVISOR_sched_op              8
-#define __HYPERVISOR_dom0_op               9
-#define __HYPERVISOR_set_debugreg         12
-#define __HYPERVISOR_get_debugreg         13
-#define __HYPERVISOR_update_descriptor    14
-#define __HYPERVISOR_set_fast_trap        15
-#define __HYPERVISOR_dom_mem_op           16
-#define __HYPERVISOR_multicall            17
-#define __HYPERVISOR_update_va_mapping    19
-#define __HYPERVISOR_set_timer_op         20
-#define __HYPERVISOR_event_channel_op     21
-#define __HYPERVISOR_xen_version          22
-#define __HYPERVISOR_console_io           23
-#define __HYPERVISOR_physdev_op           24
-#define __HYPERVISOR_update_va_mapping_otherdomain 25
+#define __HYPERVISOR_set_gdt               2
+#define __HYPERVISOR_stack_switch          3
+#define __HYPERVISOR_set_callbacks         4
+#define __HYPERVISOR_fpu_taskswitch        5
+#define __HYPERVISOR_sched_op              6
+#define __HYPERVISOR_dom0_op               7
+#define __HYPERVISOR_set_debugreg          8
+#define __HYPERVISOR_get_debugreg          9
+#define __HYPERVISOR_update_descriptor    10
+#define __HYPERVISOR_set_fast_trap        11
+#define __HYPERVISOR_dom_mem_op           12
+#define __HYPERVISOR_multicall            13
+#define __HYPERVISOR_update_va_mapping    14
+#define __HYPERVISOR_set_timer_op         15
+#define __HYPERVISOR_event_channel_op     16
+#define __HYPERVISOR_xen_version          17
+#define __HYPERVISOR_console_io           18
+#define __HYPERVISOR_physdev_op           19
+#define __HYPERVISOR_update_va_mapping_otherdomain 20
 
 /*
  * MULTICALLS
index 0bb64967d4b641ab71ff9149b14a046218b95412..f40a16dd4884149b154d36cfc8c03e7a8c24a255 100644 (file)
@@ -247,15 +247,14 @@ extern struct domain *task_list;
 #define DF_CONSTRUCTED  3 /* Has the guest OS been fully built yet?         */
 #define DF_IDLETASK     4 /* Is this one of the per-CPU idle domains?       */
 #define DF_PRIVILEGED   5 /* Is this domain privileged?                     */
-#define DF_CONWRITEBUG  6 /* Has this domain used the obsolete console?     */
-#define DF_PHYSDEV      7 /* May this domain do IO to physical devices?     */
-#define DF_BLOCKED      8 /* Domain is blocked waiting for an event.        */
-#define DF_CTRLPAUSE    9 /* Domain is paused by controller software.       */
-#define DF_SHUTDOWN    10 /* Guest shut itself down for some reason.        */
-#define DF_CRASHED     11 /* Domain crashed inside Xen, cannot continue.    */
-#define DF_DYING       12 /* Death rattle.                                  */
-#define DF_RUNNING     13 /* Currently running on a CPU.                    */
-#define DF_CPUPINNED   14 /* Disables auto-migration.                       */
+#define DF_PHYSDEV      6 /* May this domain do IO to physical devices?     */
+#define DF_BLOCKED      7 /* Domain is blocked waiting for an event.        */
+#define DF_CTRLPAUSE    8 /* Domain is paused by controller software.       */
+#define DF_SHUTDOWN     9 /* Guest shut itself down for some reason.        */
+#define DF_CRASHED     10 /* Domain crashed inside Xen, cannot continue.    */
+#define DF_DYING       11 /* Death rattle.                                  */
+#define DF_RUNNING     12 /* Currently running on a CPU.                    */
+#define DF_CPUPINNED   13 /* Disables auto-migration.                       */
 
 static inline int domain_runnable(struct domain *d)
 {